bitkeeper revision 1.1159.272.12 (42441332UkmiN7Ka9ysrPj9ZtPvXZg)
authorcl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 25 Mar 2005 13:33:38 +0000 (13:33 +0000)
committercl349@firebug.cl.cam.ac.uk <cl349@firebug.cl.cam.ac.uk>
Fri, 25 Mar 2005 13:33:38 +0000 (13:33 +0000)
Fix cleanup path for active writable pagetable.  Reconnect page so that it
gets cleaned up correctly.
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
xen/arch/x86/memory.c

index 3961b37a897db2f99c36cd02d07e9c9d596d5a9c..6fb64a31fa80a695063380881c60bc3a4e27962d 100644 (file)
@@ -1765,6 +1765,11 @@ void ptwr_flush(const int which)
                    (ENTRIES_PER_L1_PAGETABLE - i) * sizeof(l1_pgentry_t));
             unmap_domain_mem(pl1e);
             ptwr_info[cpu].ptinfo[which].l1va = 0;
+            if ( (which == PTWR_PT_ACTIVE) && likely(!d->mm.shadow_mode) )
+            {
+                pl2e = &linear_l2_table[ptwr_info[cpu].ptinfo[which].l2_idx];
+                *pl2e = mk_l2_pgentry(l2_pgentry_val(*pl2e) | _PAGE_PRESENT); 
+            }
             domain_crash();
         }